In GPS receivers, pull-in performance refers to the ability of a tracking loop to converge to the desired state. A code loop can achieve the best pull-in performance when a code-loop discriminator output is linearly related to the temporal shift between the arriving code and the replica code produced by a local code generator. In conventional GPS receivers with early and late correlators separated by the width of a code chip, linear behavior in the discriminator can be achieved over an operating range of +/−½ the width of a code chip. However, it is widely recognized that better overall performance of the receiver can be achieved when the spacing between the early and late correlators are reduced. Such arrangements are particularly effective in reducing the impact of multi path interference, but it comes at a cost. As the separation between the early and late correlators is reduced below one chip width, the interval over which the discriminator behaves linearly also decreases. While this may not be a problem when the tracking loop is operating near the correct solution, performance during acquisition and the early stages of tracking can suffer, with degraded pull-in performance.
Conventional GPS receiver design involves a code-tracking loop whose job is to maintain temporal alignment between the arriving coarse/acquisition (C/A) code and the replica code produced by the local code generator. This is accomplished with the help of output from two correlators. One correlator employs a locally generated code sequence that is advanced a fraction of a chip interval relative to the prompt position, and is known as the early correlator. The second correlator operates with the locally generated code sequence delayed a fraction of a chip interval relative to the prompt position, and is known as the late correlator. Ideally, the correlation function exhibits triangular behavior (See FIG. 1) with a peak at the prompt position and it decreases linearly as a function of the misalignment, out to a misalignment of one chip interval on either side of the peak. This behavior is illustrated in the following.
      cor    ⁡          (      x      )        =      {                                        1            -                                        x                                                                                        for              ⁢                                                          ⁢                                              x                                                      ≤            1                                                0                                                    for              ⁢                                                          ⁢                                              x                                                      >            1                              
Let CE represent the output of the early correlator and CL the output of the late correlator. The conventional method then considers these two correlator values to be located on opposite sides of the correlation peak. In that case:CE(x,Δ,ampl)=ampl*cor(x−Δ/2);CL(x,Δ,ampl)=ampl*cor(x+Δ/2);
where Δ represents the displacement between the early and late correlators (i.e. temporal delay between two selected correlator values). The early and late correlators are assumed to be equally spaced by the amount Δ/2 on either side of the prompt correlator.
It is assumed that CE is to the left of the peak and CL is to the right. Under these conditions:CE=ampl*(1−Δ/2+x)CL=ampl*(1−Δ/2−x)
These equations can be solved for x to obtain
                              x          2                =                              (                          1              -                              Δ                /                2                                      )                    ⁢                                          ⁢                                                    C                ⁢                                                                  ⁢                E                            -                              C                ⁢                                                                  ⁢                L                                                                    C                ⁢                                                                  ⁢                E                            +                              C                ⁢                                                                  ⁢                L                                                                        (        1        )            
with ampl having been eliminated. The subscript 2 is used to distinguish this particular solution from alternative solutions that follow.
Technically, this solution is only valid when |x2|≦Δ/2, but this equation is commonly used as a discriminator in the code loop without regard for this limitation. The case where Δ is set equal to the width of a code chip interval then becomes:Δ=1;x2(CE(x,Δ,ampl), CL(x,Δ,ampl), Δ)=x for |x|≦Δ/2=½
As desired, x2 behaves as a linear function of x over the range +/−(Δ/2). This means that the discriminator is providing an accurate estimate of the amount of misalignment between the arriving C/A code and the local code generator over this range. Outside this range, it no longer provides this linear response. Instead, it saturates at a value of +/−Δ/2.
When Δ is reduced to only 0.2 of the code chip interval, then this solution is only valid for |x|≦Δ/2=0.1 chip intervals. In the central region between −0.1 and 0.1, the discriminator behaves linearly, just as it did when Δ was set to 1. However, outside this range the curve increases more slowly than it would have if the linear behavior had continued. (See FIG. 2). That means for displacements between Δ/2 and 1−(Δ/2), the discriminator value will be smaller than the actual misalignment amount. As a result, the code loop will make smaller corrections than it should, and hence the loop will not reach the desired tracking position as quickly. As a result, the pull-in behavior of the loop is degraded. The curve eventually reaches a value of 0.9 for a position on the horizontal axis equal to 0.9. This is larger than the saturation value obtained above when Δ was set to 1. So, for large misalignments greater than about 0.8 code chip intervals, the loop response will be better in this latter case than in the former.
Therefore, there exists a need for the linear behavior of the discriminator to extend over a greater range when the early to late correlator spacing Δ is on the order of 0.2 or 0.1 code chip intervals thereby improving pull-in performance.